package com.frank.controller;

import com.frank.pojo.ItemCat;
import com.frank.service.ItemCatService;
import com.frank.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author Frank
 */
@RestController
@RequestMapping("/itemCat")
@CrossOrigin
public class ItemCatController {
    @Autowired
    private ItemCatService itemCatService;
    /**
     * 需求: 查询三级商品分类信息
     * URL地址: /itemCat/findItemCatList/{level}
     * 参数:    level  1/2/3
     * 返回值:  SysResult(三级菜单)
     * 类型：Get
     */
    @GetMapping("/findItemCatList/{level}")
    public SysResult findItemCatList(@PathVariable Integer level){
        List<ItemCat> catList = itemCatService.findItemCatList(level);
        return SysResult.success(catList);
    }

    /**
     * 需求: 实现状态修改
     * URL: /item/status/{id}/{status}
     * 参数: id/status
     * 类型: put
     * 返回值: SysResult对象
     */
    @PutMapping("/status/{id}/{status}")
    public SysResult updateItemCatStatus(ItemCat itemCat){
        try {
            itemCatService.updateItemCatStatus(itemCat);
            return SysResult.success();
        }catch (Exception e){
            e.printStackTrace();
            return SysResult.fail();
        }
    }

    /**
     * 需求: 修改商品分类名
     * URL: /itemCat/updateItemCat
     * 参数: id/name  ItemCat
     * 类型: put
     * 返回值: SysResult对象
     */
    @PutMapping("/updateItemCat")
    public SysResult updateItemCat(@RequestBody ItemCat itemCat){
        itemCatService.updateItemCat(itemCat);
        return SysResult.success();
    }

    /**
     * 业务需求:
     *   实现商品分类新增操作
     *   url地址: /itemCat/saveItemCat
     *   参数:    JSON串
     *   提交方式: post
     *   返回值:  SysResult对象
     */
    @PostMapping("/saveItemCat")
    public SysResult saveItemCat(@RequestBody ItemCat itemCat){
        itemCatService.saveItemCat(itemCat);
        return SysResult.success();
    }
    /**
     * 需求: 删除商品分类
     * URL: /itemCat/deleteItemCat
     * 参数: id/
     * 类型: delete
     * 返回值: SysResult对象
     */
    @DeleteMapping("deleteItemCat")
    public SysResult deleteItemCat(Integer id){
        itemCatService.deleteItemCat(id);
        System.out.println(id);
        return SysResult.success();
    }


}
